/**
 * 二维码图标
 * @param ratio 画布大小比例
 * @param color 颜色
 * @returns 数据地址
 */
const QrCodeImage = (ratio?:number,color?:string): string => {
    const r=ratio|| 2;
    const col=color||'#ffffff';
    const canvas = document.createElement('canvas');
    canvas.width = 33*r;
    canvas.height = 33*r;
    const ctx = canvas.getContext('2d')!;
    ctx.save();
    ctx.strokeStyle = "rgba(0,0,0,0)";
    ctx.miterLimit = 4;
    ctx.font = "15px ''";
    ctx.font = "   15px ''";
    ctx.scale(0.03125, 0.03125);
    ctx.save();
    ctx.fillStyle = col;
    ctx.font = "   15px ''";
    ctx.beginPath();
    ctx.moveTo(423.836543*r, 114.819049*r);
    ctx.lineTo(423.836543*r, 114.544803*r);
    ctx.lineTo(204.08256*r, 114.544803*r);
    ctx.bezierCurveTo(158.170904*r, 114.544803*r, 120.98805*r, 151.476947*r, 120.726084*r, 197.13789300000002*r);
    ctx.lineTo(120.70254800000001*r, 197.13789300000002*r);
    ctx.lineTo(120.70254800000001*r, 404.71760200000006*r);
    ctx.bezierCurveTo(120.70254800000001*r, 407.18581700000004*r, 121.20294500000001*r, 409.50053500000007*r, 121.94177200000001*r, 411.71804000000003*r);
    ctx.bezierCurveTo(128.61986800000003*r, 450.963879*r, 162.773736*r, 480.88228300000003*r, 204.082561*r, 480.88228300000003*r);
    ctx.lineTo(423.836543*r, 480.882282*r);
    ctx.lineTo(423.836543*r, 480.64487499999996*r);
    ctx.bezierCurveTo(462.713992*r, 478.212476*r, 494.313687*r, 449.28156299999995*r, 500.63465*r, 411.718039*r);
    ctx.bezierCurveTo(501.39803600000005*r, 409.50053399999996*r, 501.924016*r, 407.185816*r, 501.924016*r, 404.717601*r);
    ctx.lineTo(501.924016*r, 197.137893*r);
    ctx.lineTo(501.898433*r, 197.137893*r);
    ctx.bezierCurveTo(501.683539*r, 153.253406*r, 467.244168*r, 117.538997*r, 423.836543*r, 114.819049*r);
    ctx.closePath();
    ctx.moveTo(458.038506*r, 393.46021*r);
    ctx.bezierCurveTo(458.038506*r, 417.60819000000004*r, 438.38386399999996*r, 437.165618*r, 414.152996*r, 437.165618*r);
    ctx.lineTo(208.445938*r, 437.165618*r);
    ctx.bezierCurveTo(184.21507100000002*r, 437.165618*r, 164.58703400000002*r, 417.60819*r, 164.58703400000002*r, 393.46021*r);
    ctx.lineTo(164.587034*r, 201.980177*r);
    ctx.bezierCurveTo(164.587034*r, 177.831174*r, 184.21507*r, 158.26249*r, 208.44593799999998*r, 158.26249*r);
    ctx.lineTo(414.15401999999995*r, 158.26249*r);
    ctx.bezierCurveTo(438.38488699999994*r, 158.26249*r, 458.03952999999996*r, 177.832198*r, 458.03952999999996*r, 201.98017700000003*r);
    ctx.lineTo(458.039529*r, 393.46021*r);
    ctx.closePath();
    ctx.moveTo(902.246517*r, 195.111746*r);
    ctx.bezierCurveTo(902.030599*r, 152.31196400000002*r, 868.428294*r, 117.46736500000002*r, 826.0930930000001*r, 114.80676900000002*r);
    ctx.lineTo(826.0930930000001*r, 114.54480300000002*r);
    ctx.lineTo(634.384863*r, 114.544803*r);
    ctx.bezierCurveTo(589.594751*r, 114.544803*r, 553.344129*r, 150.58257700000001*r, 553.080116*r, 195.110723*r);
    ctx.lineTo(553.0565799999999*r, 195.110723*r);
    ctx.lineTo(553.0565799999999*r, 397.62199599999997*r);
    ctx.bezierCurveTo(553.0565799999999*r, 400.029835*r, 553.5334409999999*r, 402.29543499999994*r, 554.2968269999999*r, 404.45358799999997*r);
    ctx.bezierCurveTo(560.7845879999999*r, 442.745706*r, 594.1269739999999*r, 471.92630499999996*r, 634.3858869999999*r, 471.92630499999996*r);
    ctx.lineTo(826.0941169999999*r, 471.92630499999996*r);
    ctx.lineTo(826.0941169999999*r, 471.70015399999994*r);
    ctx.bezierCurveTo(864.0157979999999*r, 469.3148269999999*r, 894.8285709999999*r, 441.08692599999995*r, 901.0553889999999*r, 404.45358699999997*r);
    ctx.bezierCurveTo(901.7942159999999*r, 402.29543399999994*r, 902.2720999999999*r, 400.029834*r, 902.2720999999999*r, 397.62199499999997*r);
    ctx.lineTo(902.2721*r, 195.111746*r);
    ctx.lineTo(902.246517*r, 195.111746*r);
    ctx.closePath();
    ctx.moveTo(859.461061*r, 386.638851*r);
    ctx.bezierCurveTo(859.461061*r, 410.190243*r, 840.308862*r, 429.282067*r, 816.647976*r, 429.282067*r);
    ctx.lineTo(638.678656*r, 429.282067*r);
    ctx.bezierCurveTo(615.0198170000001*r, 429.282067*r, 595.8440820000001*r, 410.190243*r, 595.8440820000001*r, 386.638851*r);
    ctx.lineTo(595.844082*r, 199.832258*r);
    ctx.bezierCurveTo(595.844082*r, 176.279843*r, 615.019817*r, 157.189042*r, 638.6786559999999*r, 157.189042*r);
    ctx.lineTo(816.647977*r, 157.189042*r);
    ctx.bezierCurveTo(840.308863*r, 157.189042*r, 859.461062*r, 176.280866*r, 859.461062*r, 199.832258*r);
    ctx.lineTo(859.461061*r, 386.638851*r);
    ctx.closePath();
    ctx.moveTo(415.680792*r, 539.887141*r);
    ctx.lineTo(415.680792*r, 539.626198*r);
    ctx.lineTo(201.839473*r, 539.626197*r);
    ctx.bezierCurveTo(157.169088*r, 539.626197*r, 120.964514*r, 575.569827*r, 120.725061*r, 620.001782*r);
    ctx.lineTo(120.701525*r, 620.001782*r);
    ctx.lineTo(120.701525*r, 821.9758200000001*r);
    ctx.bezierCurveTo(120.701525*r, 824.3959390000001*r, 121.179409*r, 826.6635860000001*r, 121.917213*r, 828.7971790000001*r);
    ctx.bezierCurveTo(128.381438*r, 866.9787800000001*r, 161.652193*r, 896.1133310000001*r, 201.839474*r, 896.1133310000001*r);
    ctx.lineTo(415.680792*r, 896.113331*r);
    ctx.lineTo(415.680792*r, 895.876947*r);
    ctx.bezierCurveTo(453.505259*r, 893.5264129999999*r, 484.248447*r, 865.34763*r, 490.425123*r, 828.7971789999999*r);
    ctx.bezierCurveTo(491.187486*r, 826.6635859999999*r, 491.66639299999997*r, 824.3959389999999*r, 491.66639299999997*r, 821.9758199999999*r);
    ctx.lineTo(491.666394*r, 620.001783*r);
    ctx.lineTo(491.617275*r, 620.001783*r);
    ctx.bezierCurveTo(491.402381*r, 577.308425*r, 457.919802*r, 542.53648*r, 415.680792*r, 539.887141*r);
    ctx.closePath();
    ctx.moveTo(448.975083*r, 811.04077*r);
    ctx.bezierCurveTo(448.975083*r, 834.533834*r, 429.847444*r, 853.5652819999999*r, 406.283772*r, 853.5652819999999*r);
    ctx.lineTo(212.953601*r, 853.565283*r);
    ctx.bezierCurveTo(212.953601*r, 853.565283*r, 212.931088*r, 853.565283*r, 212.90652899999998*r, 853.565283*r);
    ctx.lineTo(206.08414699999997*r, 853.565283*r);
    ctx.bezierCurveTo(182.52047499999998*r, 853.565283*r, 163.39385899999996*r, 834.5338340000001*r, 163.39385899999996*r, 811.0407710000001*r);
    ctx.lineTo(163.393859*r, 624.687502*r);
    ctx.bezierCurveTo(163.393859*r, 601.217974*r, 182.52047499999998*r, 582.161966*r, 206.084147*r, 582.161966*r);
    ctx.lineTo(406.28479500000003*r, 582.161966*r);
    ctx.bezierCurveTo(429.848467*r, 582.161966*r, 448.976106*r, 601.217974*r, 448.976106*r, 624.687502*r);
    ctx.lineTo(448.976106*r, 811.04077*r);
    ctx.closePath();
    ctx.moveTo(721.154066*r, 753.120616*r);
    ctx.bezierCurveTo(706.4123169999999*r, 753.120616*r, 694.4867059999999*r, 764.628718*r, 694.4867059999999*r, 778.819928*r);
    ctx.lineTo(694.4867059999999*r, 830.215482*r);
    ctx.bezierCurveTo(694.4867059999999*r, 844.443531*r, 706.4112929999999*r, 855.9373069999999*r, 721.154066*r, 855.9373069999999*r);
    ctx.bezierCurveTo(735.8906989999999*r, 855.9373069999999*r, 747.817332*r, 844.4445549999999*r, 747.817332*r, 830.215482*r);
    ctx.lineTo(747.817332*r, 778.819928*r);
    ctx.bezierCurveTo(747.817332*r, 764.628718*r, 735.891721*r, 753.120616*r, 721.154066*r, 753.120616*r);
    ctx.closePath();
    ctx.moveTo(834.775846*r, 727.398792*r);
    ctx.bezierCurveTo(820.036144*r, 727.398792*r, 808.110533*r, 738.893591*r, 808.110533*r, 753.096057*r);
    ctx.lineTo(808.110533*r, 830.214459*r);
    ctx.bezierCurveTo(808.110533*r, 844.429205*r, 820.03512*r, 855.9158170000001*r, 834.775846*r, 855.9158170000001*r);
    ctx.bezierCurveTo(849.539085*r, 855.9158170000001*r, 861.464695*r, 844.4281820000001*r, 861.464695*r, 830.214459*r);
    ctx.lineTo(861.464695*r, 753.096057*r);
    ctx.bezierCurveTo(861.464695*r, 738.894613*r, 849.538061*r, 727.398792*r, 834.775846*r, 727.398792*r);
    ctx.closePath();
    ctx.moveTo(834.775846*r, 573.172221*r);
    ctx.bezierCurveTo(820.036144*r, 573.172221*r, 808.110533*r, 584.678276*r, 808.110533*r, 598.895069*r);
    ctx.lineTo(808.110533*r, 650.290623*r);
    ctx.bezierCurveTo(808.110533*r, 664.479787*r, 820.03512*r, 675.987888*r, 834.775846*r, 675.987888*r);
    ctx.bezierCurveTo(849.539085*r, 675.987888*r, 861.464695*r, 664.479786*r, 861.464695*r, 650.290623*r);
    ctx.lineTo(861.464695*r, 598.895069*r);
    ctx.bezierCurveTo(861.464695*r, 584.679299*r, 849.538061*r, 573.172221*r, 834.775846*r, 573.172221*r);
    ctx.closePath();
    ctx.moveTo(721.154066*r, 573.195757*r);
    ctx.bezierCurveTo(706.4123169999999*r, 573.195757*r, 694.4867059999999*r, 584.7028349999999*r, 694.4867059999999*r, 598.905302*r);
    ctx.lineTo(694.486706*r, 701.735295*r);
    ctx.bezierCurveTo(694.486706*r, 715.9275289999999*r, 706.411293*r, 727.421304*r, 721.1540660000001*r, 727.421304*r);
    ctx.bezierCurveTo(735.890699*r, 727.421304*r, 747.8173320000001*r, 715.928552*r, 747.8173320000001*r, 701.735295*r);
    ctx.lineTo(747.817332*r, 598.905302*r);
    ctx.bezierCurveTo(747.817332*r, 584.702835*r, 735.891721*r, 573.195757*r, 721.154066*r, 573.195757*r);
    ctx.closePath();
    ctx.moveTo(606.050538*r, 701.735295*r);
    ctx.bezierCurveTo(591.3609779999999*r, 701.735295*r, 579.409784*r, 713.1707419999999*r, 579.409784*r, 727.398791*r);
    ctx.lineTo(579.409784*r, 830.215481*r);
    ctx.bezierCurveTo(579.409784*r, 844.430227*r, 591.3609769999999*r, 855.916839*r, 606.050538*r, 855.916839*r);
    ctx.bezierCurveTo(620.8383359999999*r, 855.916839*r, 632.762923*r, 844.429204*r, 632.762923*r, 830.215481*r);
    ctx.lineTo(632.762923*r, 727.398792*r);
    ctx.bezierCurveTo(632.763946*r, 713.170742*r, 620.838336*r, 701.735295*r, 606.050538*r, 701.735295*r);
    ctx.closePath();
    ctx.moveTo(606.050538*r, 573.172221*r);
    ctx.bezierCurveTo(591.3609779999999*r, 573.172221*r, 579.409784*r, 584.678276*r, 579.409784*r, 598.895069*r);
    ctx.lineTo(579.409784*r, 624.6046140000001*r);
    ctx.bezierCurveTo(579.409784*r, 638.8060570000001*r, 591.3609769999999*r, 650.2906230000001*r, 606.050538*r, 650.2906230000001*r);
    ctx.bezierCurveTo(620.8383359999999*r, 650.2906230000001*r, 632.762923*r, 638.8060580000001*r, 632.762923*r, 624.6046140000001*r);
    ctx.lineTo(632.762923*r, 598.895069*r);
    ctx.bezierCurveTo(632.763946*r, 584.679299*r, 620.838336*r, 573.172221*r, 606.050538*r, 573.172221*r);
    ctx.closePath();
    ctx.fill();
    ctx.stroke();
    ctx.restore();
    ctx.restore();
    return canvas.toDataURL('image/png');
};


export {QrCodeImage};